//-----------------------------------------------------------------------
// <copyright file="Driver.cpp" company="Microsoft">
//      Copyright (c) 2006 Microsoft Corporation. All rights reserved.
// </copyright>
//
// Module:
//      Driver.cpp
//
// Description:
//      This file implements the ATL module and DLL entry points.
//
//-----------------------------------------------------------------------

#include <windows.h>

#ifdef __cplusplus
extern "C"{
#endif 

typedef struct UMDF_VERSION_DATA
{
	ULONG MajorNumber;
	ULONG MinorNumber;
	ULONG ServiceNumber;
}UMDF_VERSION_DATA;

typedef struct UMDF_VERSION_DATA *PUMDF_VERSION_DATA;

__declspec(dllexport)
UMDF_VERSION_DATA Microsoft_WDF_UMDF_Version = {1,5,0};

}


/////////////////////////////////////////////////////////////////////////
//
// DllCanUnloadNow
//
// Used to determine whether the DLL can be unloaded by OLE
//
// Parameters:
//      void - (unused argument)
//
// Return Values:
//      S_OK: DLL can be unloaded
//      S_FALSE: DLL cannot be unloaded now
//
/////////////////////////////////////////////////////////////////////////
STDAPI DllCanUnloadNow(void)
{
	return S_FALSE;	
}

/////////////////////////////////////////////////////////////////////////
//
// DllGetClassObject
//
// Returns a class factory to create an object of the requested type
//
// Parameters:
//      rclsid - CLSID that will associate the correct data and code
//      riid   - Reference to the IID the caller will use
//      ppv    - pointer to an interface pointer requested in riid
//
// Return Values:
//      S_OK: The object was retrieved successfully.
//      CLASS_E_CLASSNOTAVAILABLE: The DLL does not support the class
//
/////////////////////////////////////////////////////////////////////////
STDAPI DllGetClassObject(REFCLSID rclsid, REFIID riid, LPVOID *ppv)
{
	return CoGetClassObject(rclsid, CLSCTX_INPROC_SERVER, NULL, riid, ppv);	
}

